// api/user.js
const BASE_URL = 'http://121.37.1.66:8081'; // 你的基础 URL
  
// 封装 API 函数
export const api = {
// --------通讯录---------
  // 添加联系人接口
  async contacts_add_api(name, phone, address) {
    if (!name || !phone || !address) {
      throw new Error('参数不完整');
    }
    
    try {
      const res = await new Promise((resolve, reject) => {
        uni.request({
          url: `${BASE_URL}/api/contacts/`,
          method: 'POST',
          header: {
            Authorization: token,  // 添加Authorization头部
          },
          data: {name, phone, address},
          timeout: 10000,  // 设置超时时间 10秒
          success: resolve,
          fail: reject,
        });
      });
  
      if (res.statusCode === 200 && res.data.success) {
        return res.data;
      } else {
        throw new Error(res.data.message || '添加联系人失败');
      }
    } catch (err) {
      console.error('添加联系人失败:', err);
      throw err; // 抛出错误，供外部捕获
    }
  },
  
  // 查询联系人接口(单个
  async contacts_query_api() { 
    try {
      const res = await new Promise((resolve, reject) => {
        uni.request({
          url: `${BASE_URL}/api/contacts/`,
          method: 'GET',
          header: {
            Authorization: token,  // 添加Authorization头部
          },
          data: {},
          timeout: 10000,  // 设置超时时间 10秒
          success: resolve,
          fail: reject,
        });
      });
  
      if (res.statusCode === 200 && res.data.success) {
        return res.data;
      } else {
        throw new Error(res.data.message || '查询联系人失败');
      }
    } catch (err) {
      console.error('查询联系人失败:', err);
      throw err; // 抛出错误，供外部捕获
    }
  },
  
  // 变更联系人接口
  async contacts_change_api(name, phone, address) {
    if (!name || !phone || !address) {
      throw new Error('参数不完整');
    }
    
    try {
      const res = await new Promise((resolve, reject) => {
        uni.request({
          url: `${BASE_URL}/api/contacts/`,
          method: 'PUT',
          header: {
            Authorization: token,  // 添加Authorization头部
          },
          data: {name, phone, address},
          timeout: 10000,  // 设置超时时间 10秒
          success: resolve,
          fail: reject,
        });
      });
  
      if (res.statusCode === 200 && res.data.success) {
        return res.data;
      } else {
        throw new Error(res.data.message || '变更联系人失败');
      }
    } catch (err) {
      console.error('变更联系人失败:', err);
      throw err; // 抛出错误，供外部捕获
    }
  },
  
  // 删除联系人接口
  async contacts_delete_api(contactsId) {
    if (!contactsId) {
      throw new Error('联系人id不能为空');
    }
    
    try {
      const res = await new Promise((resolve, reject) => {
        uni.request({
          url: `${BASE_URL}/api/contacts/${contactsId}`,
          method: 'DELETE',
          header: {
            Authorization: token,  // 添加Authorization头部
          },
          data: {},
          params: {
            contactsId: contactsId
          },
          timeout: 10000,  // 设置超时时间 10秒
          success: resolve,
          fail: reject,
        });
      });
  
      if (res.statusCode === 200 && res.data.success) {
        return res.data;
      } else {
        throw new Error(res.data.message || '删除联系人失败');
      }
    } catch (err) {
      console.error('删除联系人失败:', err);
      throw err; // 抛出错误，供外部捕获
    }
  },
  
  // 事件查询接口
  async contacts_page_api(currentPage, size) {
    if (!currentPage || !size) {
      throw new Error('参数不完整');
    }
    
    try {
      const res = await new Promise((resolve, reject) => {
        uni.request({
          url: `${BASE_URL}/api/contacts/`,
          method: 'GET',
          header: {
            Authorization: token,  // 添加Authorization头部
          },
          data: {}, // GET 请求一般通过 URL 查询参数传递数据，data 可以为空
          params: {
            currentPage: currentPage,
            size: size
          },
          timeout: 10000,  // 设置超时时间 10秒
          success: resolve,
          fail: reject,
        });
      });
  
      if (res.statusCode === 200 && res.data.success) {
        return res.data;
      } else {
        throw new Error(res.data.message || '事件查询失败');
      }
    } catch (err) {
      console.error('事件查询失败:', err);
      throw err; // 抛出错误，供外部捕获
    }
  },
}